During the life of a computing device, the computing device may undergo various upgrades. The upgrade may take the form of a hardware upgrade, a software upgrade, or both. Typically, the upgrade is aimed at improving the operability and functionality of the computing device. However, during an upgrading process, the functionality of the computing device may be limited to performing the upgrade or it may be completely unavailable. Also, there is a potential that the upgrade is unsuccessful, which can result in the computing device becoming inoperable.